package com.le.tester.leetcode;

import java.util.HashSet;
import java.util.Set;

/**
 * createTime：2022/5/25 17:41
 * description：两个数组的交集
 */
public class Intersection {
    public int[] intersection(int[] nums1, int[] nums2) {

        Set<Integer> numSet1 = new HashSet<>();
        Set<Integer> numSet2 = new HashSet<>();

        for (Integer item : nums1) {
            numSet1.add(item);
        }
        for (Integer item : nums2) {
            numSet2.add(item);
        }

        return this.handler(numSet1, numSet2);

    }

    private int[] handler(Set<Integer> numSet1, Set<Integer> numSet2) {

        //取数值较少的set
        if (numSet1.size() > numSet2.size()) {
            return this.handler(numSet2, numSet1);
        }
        Set<Integer> resultSet = new HashSet<>();
        for (Integer item : numSet1) {
            if (numSet2.contains(item)) {
                resultSet.add(item);
            }
        }

        int[] resultInt = new int[resultSet.size()];
        int index = 0;
        for (Integer item : resultSet) {
            resultInt[index++] = item;
        }
        return resultInt;

    }


}
